/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package generadordescktop;

import generadorabm.Controladora;
import generadorabm.OTablaParametrosMetodo;
import generadorabm.Parametro;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author agustin
 */
public class ParametrosTableModel extends AbstractTableModel implements OTablaParametrosMetodo {

    public ParametrosTableModel(String metodo) {
        for (int z = 0; z < Controladora.getInstance().getCreadoraClase().getMetodos().size(); z++) {
            if (metodo.equals(Controladora.getInstance().getCreadoraClase().getMetodos().get(z).getNombre())) {
                cargarDatos(Controladora.getInstance().getCreadoraClase().getMetodos().get(z).getParametros());
            }
        }
    }

    public Object[][] cargarDatos(List<Parametro> param) {

        try {
            List<Parametro> parametros2 = param;
            parametros = new Parametro[parametros2.size()][1];

            for (int x = 0; x < parametros2.size(); x++) {
                parametros[x][0] = parametros2.get(x);
                System.out.println( parametros2.get(x).toString());
            }
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }

        return parametros;
    }
    private Object parametros[][] = cargarDatos(new ArrayList<Parametro>());

    public Object[][] getParametros() {
        return parametros;
    }

    public void setParametros(Object[][] parametros) {
        this.parametros = parametros;
    }

    public int getRowCount() {
        if (parametros.length == 0) {
            return 0;
        } else {
            return parametros.length;
        }

    }

    public int getColumnCount() {
        if (parametros.length == 0) {
            return 0;
        } else {
            return parametros[0].length;
        }
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        Object a = new Parametro();
        try {
            a = getParametros()[rowIndex][columnIndex];
            return a;
        } catch (Exception e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

    public void notificarParametrosMetodo(List<Parametro> param) {
        parametros = cargarDatos(param);
        try {
            GeneradorDescktop.getInstance().actualizarParametrosMetodos();
        } catch (Exception e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }
}
